<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/seccomp.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/seccomp.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X1VBUElfTElOVVhfU0VDQ09NUF9IXzA_"><span class="b">_UAPI_LINUX_SECCOMP_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X1VBUElfTElOVVhfU0VDQ09NUF9IXzA_"><span class="b">_UAPI_LINUX_SECCOMP_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">compiler</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="5" /><span class="True">       5:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="6" /><span class="True">       6:</span> 
<a name="7" /><span class="True">       7:</span> 
<a name="8" /><span class="True">       8:</span> <span class="k">/* Valid values for seccomp.mode and prctl(PR_SET_SECCOMP, &lt;mode&gt;) */</span>
<a name="9" /><span class="True">       9:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0VDQ09NUF9NT0RFX0RJU0FCTEVEXzA_"><span class="b">SECCOMP_MODE_DISABLED</span></a>    <span class="c">0</span> <span class="k">/* seccomp is not in use. */</span>
<a name="10" /><span class="True">      10:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0VDQ09NUF9NT0RFX1NUUklDVF8w"><span class="b">SECCOMP_MODE_STRICT</span></a>    <span class="c">1</span> <span class="k">/* uses hard-coded filter. */</span>
<a name="11" /><span class="True">      11:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0VDQ09NUF9NT0RFX0ZJTFRFUl8w"><span class="b">SECCOMP_MODE_FILTER</span></a>    <span class="c">2</span> <span class="k">/* uses user-supplied filter. */</span>
<a name="12" /><span class="True">      12:</span> 
<a name="13" /><span class="True">      13:</span> <span class="k">/*</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> * All BPF programs must return a 32-bit value.</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> * The bottom 16-bits are for optional return data.</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> * The upper 16-bits are ordered from least permissive values to most.</span>
<a name="17" /><span class="True">      17:</span> <span class="k"> *</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> * The ordering ensures that a min_t() over composed return values always</span>
<a name="19" /><span class="True">      19:</span> <span class="k"> * selects the least permissive choice.</span>
<a name="20" /><span class="True">      20:</span> <span class="k"> */</span>
<a name="21" /><span class="True">      21:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0VDQ09NUF9SRVRfS0lMTF8w"><span class="b">SECCOMP_RET_KILL</span></a>    <span class="c">0x00000000U</span> <span class="k">/* kill the task immediately */</span>
<a name="22" /><span class="True">      22:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0VDQ09NUF9SRVRfVFJBUF8w"><span class="b">SECCOMP_RET_TRAP</span></a>    <span class="c">0x00030000U</span> <span class="k">/* disallow and force a SIGSYS */</span>
<a name="23" /><span class="True">      23:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0VDQ09NUF9SRVRfRVJSTk9fMA__"><span class="b">SECCOMP_RET_ERRNO</span></a>    <span class="c">0x00050000U</span> <span class="k">/* returns an errno */</span>
<a name="24" /><span class="True">      24:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0VDQ09NUF9SRVRfVFJBQ0VfMA__"><span class="b">SECCOMP_RET_TRACE</span></a>    <span class="c">0x7ff00000U</span> <span class="k">/* pass to a tracer or disallow */</span>
<a name="25" /><span class="True">      25:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0VDQ09NUF9SRVRfQUxMT1dfMA__"><span class="b">SECCOMP_RET_ALLOW</span></a>    <span class="c">0x7fff0000U</span> <span class="k">/* allow */</span>
<a name="26" /><span class="True">      26:</span> 
<a name="27" /><span class="True">      27:</span> <span class="k">/* Masks for the return value sections. */</span>
<a name="28" /><span class="True">      28:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0VDQ09NUF9SRVRfQUNUSU9OXzA_"><span class="b">SECCOMP_RET_ACTION</span></a>    <span class="c">0x7fff0000U</span>
<a name="29" /><span class="True">      29:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_U0VDQ09NUF9SRVRfREFUQV8w"><span class="b">SECCOMP_RET_DATA</span></a>    <span class="c">0x0000ffffU</span>
<a name="30" /><span class="True">      30:</span> 
<a name="31" /><span class="True">      31:</span> <span class="k">/**</span>
<a name="32" /><span class="True">      32:</span> <span class="k"> * struct seccomp_data - the format the BPF program executes over.</span>
<a name="33" /><span class="True">      33:</span> <span class="k"> * @nr: the system call number</span>
<a name="34" /><span class="True">      34:</span> <span class="k"> * @arch: indicates system call convention as an AUDIT_ARCH_* value</span>
<a name="35" /><span class="True">      35:</span> <span class="k"> *        as defined in &lt;linux/audit.h&gt;.</span>
<a name="36" /><span class="True">      36:</span> <span class="k"> * @instruction_pointer: at the time of the system call.</span>
<a name="37" /><span class="True">      37:</span> <span class="k"> * @args: up to 6 system call arguments always stored as 64-bit values</span>
<a name="38" /><span class="True">      38:</span> <span class="k"> *        regardless of the architecture.</span>
<a name="39" /><span class="True">      39:</span> <span class="k"> */</span>
<a name="40" /><span class="True">      40:</span> <span class="m">struct</span> <span class="b">seccomp_data</span> <span class="f">{</span>
<a name="41" /><span class="True">      41:</span>     <span class="m">int</span> <span class="b">nr</span><span class="f">;</span>
<a name="42" /><span class="True">      42:</span>     <span class="b">__u32</span> <span class="b">arch</span><span class="f">;</span>
<a name="43" /><span class="True">      43:</span>     <span class="b">__u64</span> <span class="b">instruction_pointer</span><span class="f">;</span>
<a name="44" /><span class="True">      44:</span>     <span class="b">__u64</span> <span class="b">args</span><span class="f">[</span><span class="c">6</span><span class="f">]</span><span class="f">;</span>
<a name="45" /><span class="True">      45:</span> <span class="f">}</span><span class="f">;</span>
<a name="46" /><span class="True">      46:</span> 
<a name="47" /><span class="True">      47:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _UAPI_LINUX_SECCOMP_H */</span>
<a name="48" /><span class="True">      48:</span> </pre>
  </body>
</html>
